// IBaseService
package org.yate.oa.service;

import org.yate.oa.utils.Pagination;

/**
 * @author Yate
 * @date 2013年9月23日
 * @description TODO
 * @version 1.0
 */
public interface IBaseService<E, PK> {
	/**
	 * @description 详细说明
	 * @param e
	 */
	void add(final E e);

	/**
	 * @description 详细说明
	 * @param e
	 */
	void remove(final PK id);

	/**
	 * @description 详细说明
	 * @param e
	 */
	void update(final E e);

	/**
	 * @param idx
	 * @param size
	 * @param orderField
	 * @param orderMode
	 * @return
	 */
	Pagination<E> getEntities(final int idx, final int size, E e,
			final String orderField, final String orderMode);

	/**
     * @param idx
     * @param size
     * @param orderField
     * @param orderMode
     * @return
     */
    Pagination<E> getEntities(final int idx, final int size,
            final String orderField, final String orderMode);
    
	/**
	 * @description 详细说明
	 * @param id
	 * @return
	 * @throws Exception
	 */
	E getEntity(final PK id);
	
}
